/************************************************************
 * Project Name         [Thinking_In_Java]
 * File Name            [Fee.java]
 * Creation Date        [10-Jul-2014]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ************************************************************/
package pkg_01_console_app.fee_mgmt;

/**
 * 资费信息
 * 
 * @author 不落的太阳(Sean Yang)
 * @version 1.0
 * @since JDK 6
 * 
 */
public class Fee {

	private int id; // 资费编号
	private String name; // 资费名称
	private double basefee; // 基本资费
	private double ratefee; // 月租费
	private String description; // 资费描述
	private static int staticid = 0; // 资费流水编号

	/**
	 * 默认构造器
	 */
	public Fee() {
	}

	/**
	 * 带参构造器
	 * 
	 * @param name
	 *            资费名称
	 * @param basefee
	 *            基本资费
	 * @param ratefee
	 *            月租费
	 * @param description
	 *            资费描述
	 */
	public Fee(String name, double basefee, double ratefee, String description) {
		id = getStaticid();
		this.name = name;
		this.basefee = basefee;
		this.ratefee = ratefee;
		this.description = description;
	}

	/**
	 * 以String形式返回对象信息
	 */
	@Override
	public String toString() {
		return id + "," + name + "," + basefee + "," + ratefee + ","
				+ description;
	}

	/**
	 * 得到资费的id
	 * 
	 * @return 返回资费的id
	 */

	public int getId() {
		return id;
	}

	/**
	 * 修改资费id
	 * 
	 * @param id
	 *            设置的id
	 */
	public void setId(int id) {
		this.id = id;
		if (staticid < id) { // 资费流水编号保持所有id的最大值
			staticid = id;
		}
	}

	/**
	 * 得到资费名称
	 * 
	 * @return 资费名称
	 */
	public String getName() {
		return name;
	}

	/**
	 * 设置资费名称
	 * 
	 * @param name
	 *            要修改的资费名称
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 得到基本费用
	 * 
	 * @return 基本费用
	 */
	public double getBasefee() {
		return basefee;
	}

	/**
	 * 设置基本费用
	 * 
	 * @param basefee
	 *            基本费用
	 */
	public void setBasefee(double basefee) {
		this.basefee = basefee;
	}

	/**
	 * 得到月租费
	 * 
	 * @return 月租费
	 */
	public double getRatefee() {
		return ratefee;
	}

	/**
	 * 设置月租费
	 * 
	 * @param ratefee
	 *            月租费
	 */
	public void setRatefee(double ratefee) {
		this.ratefee = ratefee;
	}

	/**
	 * 得到资费描述
	 * 
	 * @return 资费描述
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * 设置资费描述
	 * 
	 * @param description
	 *            资费描述
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * 得到资费编号的最大值, 即当前的最大id
	 * 
	 * @return 资费编号最大值
	 */
	public static int getStaticid() {
		return ++staticid;
	}

}
